package com.lndsnx.listenerTest.KeyListenerTest;

import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

/**
 * @author lndsnx
 * @Description 键盘监听测试
 * @Version 1.0.0
 * @Date 2023/5/11,0011 19:32
 */
public class MyJFrame extends JFrame implements KeyListener {

    public MyJFrame() {
        // 设置宽高
        this.setSize(603, 680);
        // 设置界面的标题
        this.setTitle("事件测试");
        // 设置界面置顶
        this.setAlwaysOnTop(true);
        // 设置界面居中
        this.setLocationRelativeTo(null);
        // 设置关闭模式 默认 1 (0-不关闭，1,-关闭窗口，不退出程序，2-全部窗口关闭，退出程序，3-关掉任意一个退出程序)
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        // 取消默认的居中设置，只有取消了才会按照xy轴的形式添加组件
        this.setLayout(null);

        // 给整个窗体添加键盘监听
        // 调用者 this
        this.addKeyListener(this);

        // 显示窗口,建议写在最
        this.setVisible(true);
    }

    public void keyTyped(KeyEvent keyEvent) {
    }

    /**
     * 按下不松，会重复调用
     */
    public void keyPressed(KeyEvent keyEvent) {
        System.out.println("按下不松");
    }

    public void keyReleased(KeyEvent keyEvent) {
        System.out.println("松开");
        // 获取键盘按键编号
        int code = keyEvent.getKeyCode();
        System.out.println(code);
        if (code == 65){
            System.out.println("按得是 A");
        }else if (code == 66){
            System.out.println("按得是 B");
        }
    }
}
